package com.naiterui.ehp.bs.emr.service;

import java.util.List;

import org.springframework.data.domain.Pageable;

import com.naiterui.common.repository.page.PageParamVO;
import com.naiterui.common.repository.page.PageVO;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.emr.dto.DoctorInfoDTO;
import com.naiterui.ehp.bs.emr.dto.MedicalRecordDetailDTO;

/**
 * @Description 病例统一对外接口
 * @Author gongbaoqiang
 * @Date 2019/11/27 10:46 AM
 */
public interface IMedicalRecordService {

    /**
     * 获取患者病例列表
     * @param patientId 患者id
     * @param pageParamVO
     * @return
     * @throws BusinessException
     */
    PageVO<MedicalRecordDetailDTO> findByPatientId(Long patientId, Long inquirerId,PageParamVO pageParamVO) throws BusinessException;

    /**
     * <pre>
     *     病例详情
     * </pre>
     * @return
     * @throws BusinessException
     */
    MedicalRecordDetailDTO findById(String id) throws BusinessException;

    /**
     * 增加医生白名单
     *
     * @param caseId
     * @throws BusinessException
     */
    void addWhite(String caseId, DoctorInfoDTO doctor) throws BusinessException;

    PageVO<MedicalRecordDetailDTO> findPatientCaseByPatient(Long patientId, Pageable pageable)
            throws BusinessException;

    List<MedicalRecordDetailDTO> findBySessionIds(List<String> sessionIds);

    List<MedicalRecordDetailDTO> findByIds(List<String> ids);
}
